[INFO] cloning repository https://github.com/majecty/codechain-foundry-example
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/majecty/codechain-foundry-example" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajecty%2Fcodechain-foundry-example", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajecty%2Fcodechain-foundry-example'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 8c5ef38aeec2a4a489503cbe8dd4aff45875bec8
[INFO] checking majecty/codechain-foundry-example against master#af3c6e733a40e671550e0f0f5aeecaa13772ba56 for pr-74989
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmajecty%2Fcodechain-foundry-example" "/workspace/builds/worker-1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/majecty/codechain-foundry-example on toolchain af3c6e733a40e671550e0f0f5aeecaa13772ba56
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/majecty/codechain-foundry-example
[INFO] finished tweaking git repo https://github.com/majecty/codechain-foundry-example
[INFO] tweaked toml for git repo https://github.com/majecty/codechain-foundry-example written to /workspace/builds/worker-1/source/Cargo.toml
[INFO] crate git repo https://github.com/majecty/codechain-foundry-example already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 2dfc06c33e4b1ca26bac0b24e1e1e54ab6f868c536c8fecfad9183c43c149335
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] running `Command { std: "docker" "start" "-a" "2dfc06c33e4b1ca26bac0b24e1e1e54ab6f868c536c8fecfad9183c43c149335", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2dfc06c33e4b1ca26bac0b24e1e1e54ab6f868c536c8fecfad9183c43c149335", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2dfc06c33e4b1ca26bac0b24e1e1e54ab6f868c536c8fecfad9183c43c149335", kill_on_drop: false }`
[INFO] [stdout] 2dfc06c33e4b1ca26bac0b24e1e1e54ab6f868c536c8fecfad9183c43c149335
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+af3c6e733a40e671550e0f0f5aeecaa13772ba56" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 90205ea23e641454012a57d983ef1ffd114d36d755303145e52b15cc0121e243
[INFO] running `Command { std: "docker" "start" "-a" "90205ea23e641454012a57d983ef1ffd114d36d755303145e52b15cc0121e243", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Checking rust-example v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stdout]  --> src/modules/nameservice/module.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!()
[INFO] [stdout]   |                   ^^
[INFO] [stdout]   |
[INFO] [stdout] help: change the delimiters to curly braces
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!{}
[INFO] [stdout]   |                   ^^
[INFO] [stdout] help: add a semicolon
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!();
[INFO] [stdout]   |                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stdout]  --> src/modules/nameservice/module.rs:9:19
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!()
[INFO] [stdout]   |                   ^^
[INFO] [stdout]   |
[INFO] [stdout] help: change the delimiters to curly braces
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!{}
[INFO] [stdout]   |                   ^^
[INFO] [stdout] help: add a semicolon
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!();
[INFO] [stdout]   |                     ^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stdout]  --> src/modules/nameservice/module.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!()
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: macro expansion ignores token `{` and any following
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/modules/nameservice/module.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     unimplemented!()
[INFO] [stdout]    |     ---------------- caused by the macro expansion here
[INFO] [stdout]    |
[INFO] [stdout]    = note: the usage of `panic!` is likely invalid in impl item context
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stdout]  --> src/modules/nameservice/module.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 |     unimplemented!()
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: this error originates in a macro (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::types::QueryResNames`
[INFO] [stdout]  --> src/modules/nameservice/cli/tx.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::super::types::QueryResNames;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: macro expansion ignores token `{` and any following
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/modules/nameservice/module.rs:9:5
[INFO] [stdout]    |
[INFO] [stdout] 9  |     unimplemented!()
[INFO] [stdout]    |     ---------------- caused by the macro expansion here
[INFO] [stdout]    |
[INFO] [stdout]    = note: the usage of `panic!` is likely invalid in impl item context
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::super::types::QueryResNames`
[INFO] [stdout]  --> src/modules/nameservice/cli/tx.rs:1:5
[INFO] [stdout]   |
[INFO] [stdout] 1 | use super::super::types::QueryResNames;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_name`, `get_tx_cmd`, `get_query_cmd`
[INFO] [stdout]   --> src/modules/bank/module.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl foundry::Module for Module {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_name`, `get_tx_cmd`, `get_query_cmd` in implementation
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/foundry/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn get_name() -> String;
[INFO] [stdout]    |     ------------------------ `get_name` from trait
[INFO] [stdout] 15 |     fn get_tx_cmd() -> Command;
[INFO] [stdout]    |     --------------------------- `get_tx_cmd` from trait
[INFO] [stdout] 16 |     fn get_query_cmd() -> Command;
[INFO] [stdout]    |     ------------------------------ `get_query_cmd` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_name`, `get_tx_cmd`, `get_query_cmd`
[INFO] [stdout]   --> src/modules/nameservice/module.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl foundry::Module for Module {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_name`, `get_tx_cmd`, `get_query_cmd` in implementation
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/foundry/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn get_name() -> String;
[INFO] [stdout]    |     ------------------------ `get_name` from trait
[INFO] [stdout] 15 |     fn get_tx_cmd() -> Command;
[INFO] [stdout]    |     --------------------------- `get_tx_cmd` from trait
[INFO] [stdout] 16 |     fn get_query_cmd() -> Command;
[INFO] [stdout]    |     ------------------------------ `get_query_cmd` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `bank::Keeper` in the current scope
[INFO] [stdout]   --> src/main.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut bank_keeper = bank::Keeper::new();
[INFO] [stdout]    |                                         ^^^ function or associated item not found in `bank::Keeper`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/modules/bank/mod.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct Keeper {}
[INFO] [stdout]    | ----------------- function or associated item `new` not found for this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_name`, `get_tx_cmd`, `get_query_cmd`
[INFO] [stdout]   --> src/modules/bank/module.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl foundry::Module for Module {}
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_name`, `get_tx_cmd`, `get_query_cmd` in implementation
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/foundry/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn get_name() -> String;
[INFO] [stdout]    |     ------------------------ `get_name` from trait
[INFO] [stdout] 15 |     fn get_tx_cmd() -> Command;
[INFO] [stdout]    |     --------------------------- `get_tx_cmd` from trait
[INFO] [stdout] 16 |     fn get_query_cmd() -> Command;
[INFO] [stdout]    |     ------------------------------ `get_query_cmd` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0046]: not all trait items implemented, missing: `get_name`, `get_tx_cmd`, `get_query_cmd`
[INFO] [stdout]   --> src/modules/nameservice/module.rs:8:1
[INFO] [stdout]    |
[INFO] [stdout] 8  | impl foundry::Module for Module {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `get_name`, `get_tx_cmd`, `get_query_cmd` in implementation
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/foundry/mod.rs:14:5
[INFO] [stdout]    |
[INFO] [stdout] 14 |     fn get_name() -> String;
[INFO] [stdout]    |     ------------------------ `get_name` from trait
[INFO] [stdout] 15 |     fn get_tx_cmd() -> Command;
[INFO] [stdout]    |     --------------------------- `get_tx_cmd` from trait
[INFO] [stdout] 16 |     fn get_query_cmd() -> Command;
[INFO] [stdout]    |     ------------------------------ `get_query_cmd` from trait
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/modules/nameservice/cli/query.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |         short: "Querying commands",
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                |
[INFO] [stdout]   |                expected struct `String`, found `&str`
[INFO] [stdout]   |                help: try using a conversion method: `"Querying commands".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |         usage: "resolve [name]",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"resolve [name]".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |         short: "resolve name",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"resolve name".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `new` found for struct `bank::Keeper` in the current scope
[INFO] [stdout]   --> src/main.rs:11:41
[INFO] [stdout]    |
[INFO] [stdout] 11 |     let mut bank_keeper = bank::Keeper::new();
[INFO] [stdout]    |                                         ^^^ function or associated item not found in `bank::Keeper`
[INFO] [stdout]    | 
[INFO] [stdout]   ::: src/modules/bank/mod.rs:4:1
[INFO] [stdout]    |
[INFO] [stdout] 4  | pub struct Keeper {}
[INFO] [stdout]    | ----------------- function or associated item `new` not found for this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 |           callback: |args| {
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 22 | |             let mut ctx = foundry::Context::new_cmd_ctx();
[INFO] [stdout] 23 | |             let name = args.get(0).unwrap();
[INFO] [stdout] 24 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |             println!("{:?}", out);
[INFO] [stdout] 29 | |         },
[INFO] [stdout]    | |_________^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `fn(Vec<String>)`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/cli/query.rs:21:19: 29:10 query_route:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/modules/nameservice/cli/tx.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |         short: "Querying commands",
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                |
[INFO] [stdout]   |                expected struct `String`, found `&str`
[INFO] [stdout]   |                help: try using a conversion method: `"Querying commands".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/tx.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |         usage: "buy-name [name] [amount]",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"buy-name [name] [amount]".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/modules/nameservice/cli/query.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |         short: "Querying commands",
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                |
[INFO] [stdout]   |                expected struct `String`, found `&str`
[INFO] [stdout]   |                help: try using a conversion method: `"Querying commands".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/tx.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |         short: "bid for existing name or claim new name",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"bid for existing name or claim new name".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  |   pub fn new_handler(keeper: &mut Keeper) -> foundry::Handler {
[INFO] [stdout]    |                                              ---------------- expected `for<'r> fn(&'r mut foundry::Context, Box<(dyn Msg + 'static)>) -> std::result::Result<(), MsgError>` because of return type
[INFO] [stdout] 6  |       return |ctx: &mut foundry::Context,
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 7  | |             msg: Box<dyn foundry::Msg>|
[INFO] [stdout] 8  | |      -> Result<(), foundry::MsgError> {
[INFO] [stdout] 9  | |         match msg.msg_type().as_ref() {
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | |         }
[INFO] [stdout] 13 | |     };
[INFO] [stdout]    | |_____^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `for<'r> fn(&'r mut foundry::Context, Box<(dyn Msg + 'static)>) -> std::result::Result<(), MsgError>`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/handler.rs:6:12: 13:6 keeper:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `name` of struct `MSGSetName` is private
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:39
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                       ^^^^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:26
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          expected `&str`, found struct `String`
[INFO] [stdout]    |                          help: consider borrowing here: `&msg_set_name.name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `value` of struct `MSGSetName` is private
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:58
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                                          ^^^^^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             expected `&str`, found struct `String`
[INFO] [stdout]    |                                             help: consider borrowing here: `&msg_set_name.value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |         usage: "resolve [name]",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"resolve [name]".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/querier.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout] 6  |   pub fn new_querier(keeper: &mut Keeper) -> foundry::Querier {
[INFO] [stdout]    |                                              ---------------- expected `for<'r> fn(&'r mut foundry::Context, Vec<String>, RequestQuery) -> std::result::Result<Vec<u8>, foundry::Error>` because of return type
[INFO] [stdout] 7  |       let new_keeper = *keeper;
[INFO] [stdout] 8  |       return |ctx: &mut foundry::Context,
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 9  | |             path: Vec<String>,
[INFO] [stdout] 10 | |             req: foundry::RequestQuery|
[INFO] [stdout] 11 | |      -> Result<Vec<u8>, foundry::Error> {
[INFO] [stdout] ...  |
[INFO] [stdout] 15 | |         }
[INFO] [stdout] 16 | |     };
[INFO] [stdout]    | |_____^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `for<'r> fn(&'r mut foundry::Context, Vec<String>, RequestQuery) -> std::result::Result<Vec<u8>, foundry::Error>`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/querier.rs:8:12: 16:6 new_keeper:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 19 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0308, E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `rust-example`.
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |         short: "resolve name",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"resolve name".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/query.rs:21:19
[INFO] [stdout]    |
[INFO] [stdout] 21 |           callback: |args| {
[INFO] [stdout]    |  ___________________^
[INFO] [stdout] 22 | |             let mut ctx = foundry::Context::new_cmd_ctx();
[INFO] [stdout] 23 | |             let name = args.get(0).unwrap();
[INFO] [stdout] 24 | |
[INFO] [stdout] ...  |
[INFO] [stdout] 28 | |             println!("{:?}", out);
[INFO] [stdout] 29 | |         },
[INFO] [stdout]    | |_________^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `fn(Vec<String>)`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/cli/query.rs:21:19: 29:10 query_route:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]  --> src/modules/nameservice/cli/tx.rs:7:16
[INFO] [stdout]   |
[INFO] [stdout] 7 |         short: "Querying commands",
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |                |
[INFO] [stdout]   |                expected struct `String`, found `&str`
[INFO] [stdout]   |                help: try using a conversion method: `"Querying commands".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/tx.rs:19:16
[INFO] [stdout]    |
[INFO] [stdout] 19 |         usage: "buy-name [name] [amount]",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"buy-name [name] [amount]".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/cli/tx.rs:20:16
[INFO] [stdout]    |
[INFO] [stdout] 20 |         short: "bid for existing name or claim new name",
[INFO] [stdout]    |                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                |
[INFO] [stdout]    |                expected struct `String`, found `&str`
[INFO] [stdout]    |                help: try using a conversion method: `"bid for existing name or claim new name".to_string()`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:6:12
[INFO] [stdout]    |
[INFO] [stdout] 5  |   pub fn new_handler(keeper: &mut Keeper) -> foundry::Handler {
[INFO] [stdout]    |                                              ---------------- expected `for<'r> fn(&'r mut foundry::Context, Box<(dyn Msg + 'static)>) -> std::result::Result<(), MsgError>` because of return type
[INFO] [stdout] 6  |       return |ctx: &mut foundry::Context,
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 7  | |             msg: Box<dyn foundry::Msg>|
[INFO] [stdout] 8  | |      -> Result<(), foundry::MsgError> {
[INFO] [stdout] 9  | |         match msg.msg_type().as_ref() {
[INFO] [stdout] ...  |
[INFO] [stdout] 12 | |         }
[INFO] [stdout] 13 | |     };
[INFO] [stdout]    | |_____^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `for<'r> fn(&'r mut foundry::Context, Box<(dyn Msg + 'static)>) -> std::result::Result<(), MsgError>`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/handler.rs:6:12: 13:6 keeper:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `name` of struct `MSGSetName` is private
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:39
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                       ^^^^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:26
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                          |
[INFO] [stdout]    |                          expected `&str`, found struct `String`
[INFO] [stdout]    |                          help: consider borrowing here: `&msg_set_name.name`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0616]: field `value` of struct `MSGSetName` is private
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:58
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                                          ^^^^^ private field
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/handler.rs:27:45
[INFO] [stdout]    |
[INFO] [stdout] 27 |     keeper.set_name(ctx, msg_set_name.name, msg_set_name.value);
[INFO] [stdout]    |                                             ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |                                             |
[INFO] [stdout]    |                                             expected `&str`, found struct `String`
[INFO] [stdout]    |                                             help: consider borrowing here: `&msg_set_name.value`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0308]: mismatched types
[INFO] [stdout]   --> src/modules/nameservice/querier.rs:8:12
[INFO] [stdout]    |
[INFO] [stdout] 6  |   pub fn new_querier(keeper: &mut Keeper) -> foundry::Querier {
[INFO] [stdout]    |                                              ---------------- expected `for<'r> fn(&'r mut foundry::Context, Vec<String>, RequestQuery) -> std::result::Result<Vec<u8>, foundry::Error>` because of return type
[INFO] [stdout] 7  |       let new_keeper = *keeper;
[INFO] [stdout] 8  |       return |ctx: &mut foundry::Context,
[INFO] [stdout]    |  ____________^
[INFO] [stdout] 9  | |             path: Vec<String>,
[INFO] [stdout] 10 | |             req: foundry::RequestQuery|
[INFO] [stdout] 11 | |      -> Result<Vec<u8>, foundry::Error> {
[INFO] [stdout] ...  |
[INFO] [stdout] 15 | |         }
[INFO] [stdout] 16 | |     };
[INFO] [stdout]    | |_____^ expected fn pointer, found closure
[INFO] [stdout]    |
[INFO] [stdout]    = note: expected fn pointer `for<'r> fn(&'r mut foundry::Context, Vec<String>, RequestQuery) -> std::result::Result<Vec<u8>, foundry::Error>`
[INFO] [stdout]                  found closure `[closure@src/modules/nameservice/querier.rs:8:12: 16:6 new_keeper:_]`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 19 previous errors; 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0046, E0308, E0599, E0616.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0046`.
[INFO] [stdout] 
[INFO] [stderr] error: build failed
[INFO] running `Command { std: "docker" "inspect" "90205ea23e641454012a57d983ef1ffd114d36d755303145e52b15cc0121e243", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "90205ea23e641454012a57d983ef1ffd114d36d755303145e52b15cc0121e243", kill_on_drop: false }`
[INFO] [stdout] 90205ea23e641454012a57d983ef1ffd114d36d755303145e52b15cc0121e243
